package com.ruoyi.message.service;

import com.ruoyi.common.constant.MeetMessage;
import com.ruoyi.common.constant.PlayerData;

import javax.websocket.Session;
import java.util.List;

/**
 * @author: 高飞
 * @time: 2023/12/2
 * @description: 房间管理描述
 **/
public interface RoomService {
    List<PlayerData> getPlayer(Long roomId);

    /**
     * 进入房间
     * author 高飞
     * time   2023/12/2
     * @param roomId 房间编号
     * @param userName 用户名
     * @param session 链接
     */
    void join(Long roomId, String userName, Session session);

    /**
     * 离开房间
     * author 高飞
     * time   2023/12/2
     * @param userName 用户名
     * @param session 链接
     */
    void leave(String userName, Session session);

    void beginScreenShare(Session session, MeetMessage meetMessage);


    /**
     * 二进制数据，再次只表示屏幕共享数据
     * author 高飞
     * time   2023/12/2
     * @param session session
     * @param bytes 屏幕信息
     */
    void binMessage(Session session, byte[] bytes);

    /**
     * 给会议内的人发送消息
     * author 高飞
     * time   2023/12/2
     * @param session 链接
     * @param meetMessage 消息体
     */
    void messageToOther(Session session, MeetMessage meetMessage);

    /**
     * 给会议内的人发送消息
     * author 高飞
     * time   2023/12/2
     * @param session 链接
     * @param meetMessage 消息体
     */
    void messageToOther(Session session, byte[] meetMessage);
}
